fatal_trap(TRAP_machine_check, regs);
}
- static inline void propagate_page_fault(unsigned long addr, u16 error_code)
+ void propagate_page_fault(unsigned long addr, u16 error_code)
{
trap_info_t *ti;
- struct domain *d = current;
- struct trap_bounce *tb = &d->thread.trap_bounce;
+ struct exec_domain *ed = current;
+ struct trap_bounce *tb = &ed->thread.trap_bounce;
- ti = d->thread.traps + 14;
+ ti = ed->thread.traps + 14;
tb->flags = TBF_EXCEPTION | TBF_EXCEPTION_ERRCODE | TBF_EXCEPTION_CR2;
tb->cr2 = addr;
tb->error_code = error_code;
tb->cs = ti->cs;
tb->eip = ti->address;
if ( TI_GET_IF(ti) )
- d->shared_info->vcpu_data[0].evtchn_upcall_mask = 1;
+ d->vcpu_info->evtchn_upcall_mask = 1;
}
- return 1;
+ return EXCRET_fault_fixed;
fixme:
DPRINTK("Undecodable instruction %02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x "